﻿// <copyright file="BookRank.cs" company="Microsoft Corporation">
// Copyright (c) 2009 Microsoft Corporation All Rights Reserved
// </copyright>
// <author>Michael S. Scherotter</author>
// <email>mischero@microsoft.com</email>
// <date>2009-4-16</date>
// <summary>The Book Rank Class</summary>

namespace NYTimes.Data
{
    using System;

    /// <summary>
    /// The NYTimes Bestseller book rank
    /// </summary>
    public class BookRank
    {
        /// <summary>
        /// Gets or sets the rank
        /// </summary>
        public int Rank { get; set; }

        /// <summary>
        /// Gets or sets the list name
        /// </summary>
        public string ListName { get; set; }

        /// <summary>
        /// Gets or sets the date of the best seller data
        /// </summary>
        public DateTime BestsellersDate { get; set; }

        /// <summary>
        /// Gets or sets the date the book ranking was published in the New York Times
        /// </summary>
        public DateTime PublishedDate { get; set; }

        /// <summary>
        /// Gets or sets the weeks on the list
        /// </summary>
        public int WeeksOnList { get; set; }

        /// <summary>
        /// Gets or sets the rank last week
        /// </summary>
        public int RankLastWeek { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this book's sales are barely distinguishable from those of the book above it on the list.
        /// </summary>
        public bool Asterisk { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether some bookstores have received bulk orders for this book.
        /// </summary>
        public bool Dagger { get; set; }

        /// <summary>
        /// Gets the properties and values listed
        /// </summary>
        /// <returns>a string with the property names and values</returns>
        public override string ToString()
        {
            return Synergist.Utility.GetProperties(this);
        }
    }
}
